草庐IT

c++ - ifstream : how to tell if specified file doesn\'t exist

全部标签

c++ - 为什么我会收到此 ifstream 错误?

Implicitinstantiationofundefinedtemplate'std::basic_ifstream>'#ifndefMAPPER_H#defineMAPPER_H#include#include#include#include"KeyValue.h"#include"Parser.h"usingnamespacestd;classMapper{public:Mapper(ifstream&infile);~Mapper(void);voidloadTokens();voidshowTokens();voidmap();voidprintMap();voidprin

c++ - 将 ifstream 中的一行读入字符串变量

在以下代码中:#include#include#includeusingnamespacestd;intmain(){stringx="ThisisC++.";ofstreamof("d:/tester.txt");of>x;cout输出:这个由于>>运算符读取到第一个空格,我得到了这个输出。如何将行提取回字符串?我知道这种形式的istream&getline(char*s,streamsizen);但我想将它存储在一个字符串变量中。我该怎么做? 最佳答案 使用std::getline()来自.istream&getline(ist

使用字符串作为打开文件路径的 C++ ifstream 错误。

我有:stringfilename:ifstreamfile(filename);编译器提示ifstream文件和字符串之间不匹配。我需要将文件名转换成什么吗?这是错误:error:nomatchingfunctionforcallto‘std::basic_ifstream>::basic_ifstream(std::string&)’/usr/include/c++/4.4/fstream:454:note:candidatesare:std::basic_ifstream::basic_ifstream(constchar*,std::_Ios_Openmode)[with_Ch

C++:变量 'std::ifstream ifs' 具有初始化程序但类型不完整

对不起,如果这很无聊,但我对C++很陌生。我正在尝试打开一个文件并使用ifstream读取它:vectorload_f(stringfile){vectortext;ifstreamifs(file);stringbuffer,str_line;intbrackets=0;str_line="";while(getline(ifs,buffer)){buffer=Trim(buffer);size_ts=buffer.find_first_of("()");if(s==string::npos)str_line+=""+buffer;else{while(s!=string::npos

c++ - 我需要手动关闭 ifstream 吗?

使用std::ifstream时是否需要手动调用close()?例如在代码中:std::stringreadContentsOfFile(std::stringfileName){std::ifstreamfile(fileName.c_str());if(file.good()){std::stringstreambuffer;buffer我需要手动调用file.close()吗?ifstream不应该使用RAII关闭文件? 最佳答案 没有这就是RAII的用途,让析构函数完成它的工作。手动关闭它并没有什么坏处,但它不是C++的方式

c++ - ifstream : how to tell if specified file doesn't exist

我想打开一个文件进行阅读。但是,在这个程序的上下文中,如果文件不存在也没关系,我继续前进。我希望能够识别错误何时是“找不到文件”以及何时错误。否则意味着我需要退出并出错。我没有看到使用fstream的明显方法。我可以用C的open()和perror()来做到这一点。我推测也有一种fstream方法可以做到这一点。 最佳答案 编辑:我已被告知这并不一定表示文件不存在,因为它也可能由于访问权限或其他问题而被标记。我知道我回答这个问题已经很晚了,但我想我还是会为浏览的任何人留下评论。您可以使用ifstream的失败指示器来判断文件是否存在

c++ - ifstream : how to tell if specified file doesn't exist

我想打开一个文件进行阅读。但是,在这个程序的上下文中,如果文件不存在也没关系,我继续前进。我希望能够识别错误何时是“找不到文件”以及何时错误。否则意味着我需要退出并出错。我没有看到使用fstream的明显方法。我可以用C的open()和perror()来做到这一点。我推测也有一种fstream方法可以做到这一点。 最佳答案 编辑:我已被告知这并不一定表示文件不存在,因为它也可能由于访问权限或其他问题而被标记。我知道我回答这个问题已经很晚了,但我想我还是会为浏览的任何人留下评论。您可以使用ifstream的失败指示器来判断文件是否存在

c++ - ifstream 的 eof() 是如何工作的?

#include#includeintmain(){std::fstreaminf("ex.txt",std::ios::in);while(!inf.eof()){std::cout>c){std::cout我真的对eof()函数感到困惑。假设我ex.txt的内容是:abc在使用eof()读取时,它总是读取一个额外的字符并显示-1。但是inf>>c给出了正确的输出,即“abc”?谁能帮我解释一下? 最佳答案 -1是get表示您已到达文件末尾。使用std::char_traits::eof()进行比较(或std::istream::

c++ - ifstream 的 eof() 是如何工作的?

#include#includeintmain(){std::fstreaminf("ex.txt",std::ios::in);while(!inf.eof()){std::cout>c){std::cout我真的对eof()函数感到困惑。假设我ex.txt的内容是:abc在使用eof()读取时,它总是读取一个额外的字符并显示-1。但是inf>>c给出了正确的输出,即“abc”?谁能帮我解释一下? 最佳答案 -1是get表示您已到达文件末尾。使用std::char_traits::eof()进行比较(或std::istream::

c++ - 如何使用 unicode 文件名打开 std::fstream(ofstream 或 ifstream)?

您不会想象像使用C++标准库为Windows应用程序打开文件这样基本的事情是很棘手的……但看起来确实如此。这里的Unicode是指UTF-8,但我可以转换为UTF-16或其他格式,重点是从Unicode文件名中获取一个ofstream实例。在我破解自己的解决方案之前,这里有首选路线吗?尤其是跨平台的? 最佳答案 C++标准库不支持Unicode。char和wchar_t不需要是Unicode编码。在Windows上,wchar_t是UTF-16,但标准库中不直接支持UTF-8文件名(Windows上的char数据类型不是Unicod